Crowdsourced playback control of media content

ABSTRACT

Example embodiments provide systems and methods for crowdsourced skipping of media content portions. In an example method, a plurality of content tags are received from a plurality of media content devices over a communication network. Each of the plurality of content tags may designate a location within a media content item. The content tags are processed to generate aggregated content tags for the media content item. The aggregated content tags may designate one or more portions of the media content item for modified playback. The aggregated content tags for the media content item are transmitted over the communication network to a first media content device separate from the plurality of media content devices.

CLAIM OF PRIORITY

This application is a continuation of U.S. patent application Ser. No.16/194,922, filed on Nov. 19, 2018, which is a continuation of U.S.patent application Ser. No. 15/283,002, filed on Sep. 30, 2016, whichare incorporated herein by reference in their entireties.

FIELD

The present disclosure relates generally to the presentation of mediacontent and, in a specific example embodiment, to playback control ofmedia content using crowdsourcing.

BACKGROUND

While a sizeable amount of media content continues to be consumed byviewers and listeners “live” (e.g., as the media content is beingreceived from a media content source by way of terrestrial antennabroadcast, direct satellite broadcast, Internet streaming, and so on),some significant volume of media content is recorded or stored forsubsequent viewing, often after first being broadcast or otherwisepresented to one or more other viewers. Such media content may bereceived and stored either locally (e.g., on a personal video recorder(PVR) or digital video recorder (DVR), on a magnetic or optical diskdrive, on a flash drive, or the like), or remotely (e.g., on a server,database, or other data storage device or system accessible via acommunication network).

Oftentimes, an item of media content (e.g., a movie, television episode,news program, sporting event, or the like) includes one or more portions(e.g., advertisements during television shows, timeouts andintermissions during sports, sections of potentially objectionablecontent during movies, and so on) that at least some viewers may desireto skip while playing back the media content item. In other cases, amedia content item includes one or more portions (e.g., exceptionallydramatic movie scenes, exciting sports plays, and the like) that someviewers especially enjoy.

BRIEF DESCRIPTION OF DRAWINGS

Various ones of the appended drawings merely illustrate exampleembodiments of the present disclosure and cannot be considered aslimiting in scope.

FIG. 1 is a block diagram of an example media content system includingan example media content playback control system and an example mediacontent receiver.

FIG. 2 is a block diagram of the example media content playback controlsystem of FIG. 1 .

FIG. 3 is a block diagram of the example media content receiver of FIG.1 .

FIG. 4 is a data flow diagram of content tags and aggregated contenttags transferred in an example media content system.

FIG. 5 is graphical depiction of an example content tag database of themedia content playback control system of FIG. 2 .

FIG. 6 is graphical depiction of an example aggregated content tagdatabase of the media content playback control system of FIG. 2 .

FIG. 7 is a graphical depiction of an example content popularitydatabase of the media content playback control system of FIG. 2 .

FIG. 8 is a flow diagram of an example method for providing content tagsat a media content receiver.

FIG. 9 is a flow diagram of an example method for employing aggregatedcontent tags at a media content receiver.

FIG. 10 is a flow diagram of an example method for generating anddistributing aggregated content tags based on received content tags at amedia content playback control system.

FIG. 11 is a flow diagram of an example method for generating anddistributing content popularity data based on received content tags at amedia content playback control system.

FIG. 12 is a simplified block diagram of a machine in an example form ofa computing system within which a set of instructions for causing themachine to perform any one or more of the methodologies discussed hereinmay be executed.

DETAILED DESCRIPTION

In the following description, for the purposes of explanation, numerousspecific details are set forth in order to provide an understanding ofvarious example embodiments of the present subject matter. It will beevident, however, to those skilled in the art, that example embodimentsof the present subject matter may be practiced without these specificdetails.

FIG. 1 is a block diagram of an example media content system 100including an example media content playback control system 102 and oneor more example media content receivers 112. The media content system100 may also include one or more sources 108, 110 of media content. Inexample embodiments, the media content distributed within the mediacontent system 100 may include audio data, video data, or both. Further,the media content may be organized into separate media content items,such as television programs, movies, video clips, individual songs, andthe like. The media content sources 108, 110 may transmit media contentitems over a network 106 to one or more media content receivers 112. Inexample embodiments, the network 106 may be a wide-area network (WAN)(e.g., the Internet), a cellular network (e.g., third-generation (3G) orfourth-generation (4G) network), a cable television network, a satellitecommunication network, or any other communication network or connectionsuitable for carrying the media content items, or combinations thereof.

The content sources 108, 110 may be any devices or systems that generateand transmit media content items via the network 106 to the mediacontent receivers 112, or that act as distributing systems for mediacontent items that are generated by other devices, systems, or entitiesnot explicitly shown in FIG. 1 . As shown in FIG. 1 , a first contentsource 108 may be an over-the-air (OTA) television content source 108(e.g., a local television station, a broadcast television network, andso on), a cable television content source, a satellite televisioncontent source (e.g., a direct-broadcast satellite (DBS) system), or anyother content source that may provide one or more channels or streams ofmedia content items to the media content receivers 112 via the network106. Such a content source 108 may also provide an electronic programguide (EPG) 109 that includes information for viewers regarding theparticular media content items to be transmitted on particular channelsor streams, the timing of those transmissions, and the like.

A second content source 110 may be any device or system that providesmedia content items over the Internet or other widely accessible mediumwithout requiring an intervening operator or system, such as a cable orsatellite operator or system, for distribution of the media contentitems. In some example embodiments, the second content source 110 (e.g.,a website for streaming audio clips, video programs, and so on) mayprovide a content catalog 111 that includes information for viewersregarding the particular media content items available, the terms (e.g.,payment, available times, etc.) for accessing the media content items,and so on. Other types of media content item sources other than thecontent sources 108, 110 of FIG. 1 are also possible.

Each of the media content receivers 112 may be any system or deviceconfigured to receive one or more of the media contents items via thenetwork 106 and present the media content items for display orpresentation to one or more viewers. Examples of the media contentreceivers 112 may include, but are not limited to, televisions, smarttelevisions, television set-top boxes (STBs), streaming devices, gamingdevices, desktop computers, laptop computers, tablet computers, smartphones, and so on. The media content receiver 112 may process theincoming media content items and provide the items for presentation to aviewer via a media content presentation device 114, which may be atelevision, computer monitor, audio receiver with speakers, or otherdevice or system configured to present media content to a viewer. Thepresentation of the media content items may be “live” (e.g., as themedia content items are received via the network 106). The processing ofthe media content items may include, for example, frequency conversion,decoding, decryption, error detection/correction, format conversion, andso on. While the media content presentation devices 114 are shown asseparate devices from their corresponding media content receivers 112,the media content presentation devices 114 may be integrated within themedia content receiver 112 in some example embodiments.

As depicted in FIG. 1 , one or more of the media content receivers 112may include a media content recorder 116, such as a personal videorecorder (PVR) or digital video recorder (DVR), that may be configuredto record one or more of the media content items received at the mediacontent receiver 112 and store them for subsequent playback (e.g., atsome point after the media content item has been received at the mediacontent receiver 112). While the media content recorders 116 are shownas being integrated within their respective media content receivers 112,one or more of the media content recorders 116 may be separate from, butcommunicatively coupled to, their associated media content receivers112.

The media content playback control system 102 may be coupled with thecontent sources 108, 110 and the media content receivers 112 via thenetwork 106. As is described in greater detail below, the media contentplayback control system 102 may receive information from multiple mediacontent receivers 112 that indicates or designates portions of the mediacontent items that were marked as either objectionable or desirable bythe viewer. For example, a viewer may skip over one or moreobjectionable portions (e.g., commercials, sports event timeouts, orother undesirable segments) of a previously-recorded media content itemby way of using one or more trick modes of the media content recorder116 of the media content receiver 112, such as a fast-forward mode tobegin skipping over an advertisement, followed by a play mode to resumenormal playback of the media content item after the advertisement hasbeen skipped. In another example, the viewer may only mark or otherwisedesignate (e.g., by way of a button of a remote control device providedfor such a purpose) the beginning and end of portions of the mediacontent item that are personally undesirable or objectionable to theviewer while the item is being played or presented live (e.g., as themedia content receiver 112 is receiving the item via the network 106) tothe viewer. Oppositely, the viewer may replay one or more desirableportions (e.g., notable sports plays, exciting movie scenes, and thelike) of a media content item by using a rewind and subsequent playmode. In another example, the viewer may only mark or otherwisedesignate the beginning and end of portions of the media content itemthat are personally desirable. The marking information may includetimestamps or other indications of locations within the media contentitem at which a portion to be skipped either begins or ends. The mediacontent playback control system 102 may then aggregate or otherwiseprocess that information to generate aggregated marking information thatmay then be provided to a different media content receiver 112, whichmay be configured to use the aggregated information to modify theplayback of portions of a media content item (e.g., when presented tothe viewer after being viewed by other viewers using other media contentreceivers 112). Such modifications may include, but not limited to,skipping, muting, or replaying the designated portions, presenting analert (e.g., a visual icon) while playing the designated portions,playing only the designated portions, and so on.

As a result, at least some of the embodiments of the media contentplayback control system 102 and the media content receivers 112discussed herein facilitate a type of “crowdsourcing” of informationuseful for automatically skipping unpopular portions of media contentitems being viewed by users. Such information may take the form of oneor more “tags” that indicate starting or ending locations within themedia content items of the portions to be skipped. Moreover, in someexample embodiments, the resulting skipping information may be processedand provided to media stakeholders, such as the content sources 108, 110or other entities, as feedback regarding the popularity, or lackthereof, of the media content items, or portions thereof. In yet otherexample embodiments, some tags may indicate highly popular portions ofmedia contents, which may be used to alert other viewers of thoseportions, as well as to provided positive feedback regarding thoseportions to one or more media stakeholders. Other aspects of variousexample embodiments of the media content playback control system 102 andother components of the media content system 100 are discussed morefully below.

FIG. 2 is a block diagram of the media content playback control system102 of FIG. 1 , according to an example embodiment. As shown in FIG. 2 ,the media content playback control system 102 may include one or more ofa content tag access module 202, a content tag database 204, a contenttag aggregation module 206, an aggregated content tag database 208, anaggregated content tag transmission module 210, a known extents database212, a content popularity data generation module 214, and a contentpopularity database 216. In other example embodiments, one or more ofthe modules 202-216 of FIG. 2 may be omitted or combined with othermodules, and one or more modules not explicitly discussed herein may beincluded within the media content playback control system 102. In someexample embodiments, one or more of the modules 202-216 may includehardwired modules, one or more processors, associated memory thatincludes instructions executable by the one or more processors, or somecombination thereof.

The content tag access module 202 may be configured to receive contenttags generated at one or more of the media content receivers 112. In oneexample embodiment, each content tag may identify the particular mediacontent item, as well as a starting location and/or an ending locationof a portion of the media content item for which playback is to bemodified. Additional information may be included in the tag as well.Other types or forms of the content tags may be utilized in otherembodiments. Further, each media content receiver 112 may push itscontent tags associated with one or more media content items over thenetwork 106 to the content tag access module 202. In other exampleembodiments, the content tag access module 202 may pull stored contenttags from each of the media content receivers 112, such as periodically,on an as-needed basis, or according to some other schedule orevent-driven scenario. The content tag access module 202 may then storethe received content tags in the content tag database 204 over a periodof time. An example of data stored in the content tag database 204 isdiscussed below in connection with FIG. 5 .

As employed herein, a location is a timestamp, a frame number (e.g., inthe case of video content), or other indication of a point in timeduring the playing of the media content item. Further, the extent of aportion of a media content item is defined by a starting location and anending location within the media content item. For example, if the mediacontent item is a video content item, a starting location of a portionof the video content item may be two minutes from the beginning of thevideo content item, and an ending location of the portion of the videocontent item may be three minutes from the beginning of the videocontent item, resulting in a portion that is one minute in length thatextends from two minutes to three minutes from the beginning of thevideo content item.

In some example embodiments, the content tag access module 202 may alsoreceive additional information related to the received content tags,such as rating information indicating a viewer's rating of the portionof the media content item marked for modified playback, a reason as towhy the portion was marked, a genre or type (e.g., advertisement, sportsevent timeout, and the like) of the portion marked, and the like.

The content tag aggregation module 206 may then aggregate and/orotherwise process the content tags associated with a particular mediacontent item that are stored in the content tag database 204 to generateone or more aggregated content tags, which may be stored in theaggregated content tag database 208. An example of the data stored inthe aggregated content tag database 208 is described below inconjunction with FIG. 6 . In an example embodiment, tags from multiplemedia content receivers 112 may mark approximately the same relativeportion of the same media content item as a portion for which playbackis to be modified. Based on those multiple tags, the content tagaggregation module 206 may generate a single aggregated tag designatinga starting location and an ending location within the media content itemof that portion, such as when a different media content receiver 112subsequently presents the same media content item to a viewer. Inanother example embodiment, two separate aggregated content tags (e.g.,a starting location tag and an ending location tag) may be generated forthe portion of the media content item.

The aggregation of multiple content tags into a single aggregated tag(or pair of tags) may be performed in a number of ways. For example, thecontent tag aggregation module 206 may first organize the content tagsreceived from the media content receivers 112 into separate groups thatmay identify the same general location within a media content item, suchas a starting location and an ending location of a particular portion tobe skipped within the item. Such organizing or identifying of groups maybe performed using any of a number of methods, such as a nearestneighbor algorithm, which may be employed to group the content tagsbased on their location relative to each other.

In some example embodiments, each of the received content tags mayinclude an indication of whether the tag corresponds with a starting orending location of a portion for which playback is to be modified. Forexample, a first tag may correspond with a fast-forward command,indicating that the tag is associated with a starting location of aportion to be skipped, while a second tag may correspond with a playcommand, indicating that the second tag is associated with an endinglocation of the skipped portion. Thus, such indications of whetherparticular tags designate either starting or ending locations of theportions may facilitate the grouping of tags, as well as theidentification of the actual portions of the media content item forwhich playback is to be modified, along with an indication of themodification to be performed (e.g., skipping the portion, muting theportion, replaying the portion, presenting an alert while playing theportion, and the like).

In yet other example embodiments in which the content tags do notprovide an indication as to whether the associated location is astarting location or ending location of a portion for which playback isto be modified, such associations may be inferred based on how close afirst group of content tags is located within the media content item toa second group. For example, two groups that are relatively close toeach other may be considered as designating the starting and endinglocations of the same portion. In some examples, the identifying of thestarting and ending locations of the same portion for which playback isto be modified may be performed after the groups of content tags areaggregated.

Each identified group of content tags may then be aggregated into asingle content tag by any of a number of methods. For example, each ofthe content tags within a group may be averaged in some way, such as bycalculating a mean, median, or mode of the locations of the content tagswithin the group to generate the aggregated tag.

In another example embodiment, the tags within a group may be aggregatedto an earliest tag or latest tag within the group based on whether thegroup of tags corresponds to a starting location or an ending locationof the portion for which playback is to be modified. In an exampleembodiment in which the group of tags are associated with a fast-forwardcommand (thus possibly indicating a starting location of a skippedportion), the earliest tag of that group may be identified as theaggregated tag for that group. Accordingly, if the group of tags areassociated with a play command (thus possibly indicating an endinglocation of the skipped portion), the latest tag of the group may beidentified as the aggregated tag for the group.

In some example embodiments, the earliest, latest, or average contenttag in a group may be further modified based on some rule. For example,an earliest or average content tag for a starting location of a portionof the media content item may be adjusted earlier or later by somepredetermined amount or percentage within the media content item, as maybe a latest or average content tag for an ending location.

In some example embodiments, the various content tags may be compared tostarting and ending locations of predetermined or previously knownportions or extents of the media content item to identify which of thecontent tags are identified with the predetermined or previously knownportions of the media content item. These previously known portions ofthe media may include, for example, known points in time at whichadvertisements begin and end in a television program, known sections oftime during which a timeout or other stoppage in play occur during asporting event, known points in time at which potentially objectionableor desirable portions of a movie occur, and so on. Identifying each ofthe particular content tags with one of the predetermined portions ofthe media content item may result in the grouping and aggregating of thecontent tags, as mentioned above.

A source of the media content item, in some example embodiments, mayprovide the information identifying the locations of previously knownextents of the media content item to the media content playback controlsystem 102, which may store that information in the known extentsdatabase 212 for use by the content tag aggregation module 206. In someexample embodiments, the known extents database 212 may includeadditional information pertaining to one or more of the known extents ofthe media content item. This additional information may include, but isnot limited to, genre or type information

In some example embodiments, the content tag aggregation module 206 mayignore one or more groups of content tags based on a static or dynamicthreshold number of content tags in a group. For example, if the numberof content tags in a group is less than some predetermined thresholdnumber, the content tag aggregation module 206 may not generate anaggregated tag that is representative of that group. In another exampleembodiment, if the number of content tags in a group is less than somethreshold number based on the number of content tags in other groups(e.g., some percentage of an average number of content tags in a group),the content tag aggregation module 206 may not generate an aggregatedtag for that group. Other methods of eliminating one or more content taggroups may be employed in other example embodiments, thus potentiallyresulting in those tags being ignored for the purpose of identifyingportions of the media content item for modified playback. In anotherexample embodiment, content tags for a particular group that indicateviewer approval of the associated portion of the media content item maybe balanced against other content tags of that same group that indicateviewer disapproval of the portion, possibly resulting in the tagsassociated with that group being ignored.

In an example embodiment, the content tag aggregation module 206 mayalso generate additional information associated with the aggregatedcontent tag based on additional information stored in either or both thecontent tag database 204 or the known extents database 212. In anexample embodiment, the content tag aggregation module 206 may retrievegenre, rating, and other information relating to a known extent of amedia content item from the known extents database 212 and store thatinformation with an associated aggregated content tag in the aggregatedcontent tag database 208. In another example embodiment, the content tagaggregation module 206 may also aggregate additional information (e.g.,rating information, genre information, and so on) supplied with thecontent tags in the content tag database 204 and store the aggregatedadditional information with an associated aggregated content tag in theaggregated content tag database 208. Aggregation of the additionalinformation may involve an average (e.g., a mean, median, or mode of theinformation) of the additional information among the content tags of thecontent tag database 204, or via other means.

After the content tag aggregation module 206 generates the aggregatedcontent tags for one or more media content items, the aggregated contenttag transmission module 210 may transmit the aggregated tags for one ormore media content items via the network 106 to one or more of the mediacontent receivers 112. The aggregated content tag transmission module210 may perform the transmission of the aggregated tags according to oneor more different methods. In one example, the aggregated content tagtransmission module 210 may transmit the aggregated tags for one or moremedia content items separately from the media content items themselves.The particular tags to be transmitted to a particular media contentreceiver 112 may be based on the particular media content items thathave been recorded using the corresponding media content recorder 116 orthat otherwise have been marked or noted for viewing in the future.Further, in some example embodiments, the aggregated tags for aparticular media content item may be transmitted at a time when otheractivities within the media content receiver 112 are unlikely to occur,such as during the late evening or early morning hours. In instances inwhich the media content receiver 112 begins presentation of a previouslyrecorded media content item, or begins streaming a previously broadcastmedia content item from a content source 108, 110, the aggregatedcontent tag transmission module 210 may be informed of that fact (e.g.,via a message transmitted over the network 106 to the media contentplayback control system 102 from the media content receiver 112 that ispresenting the content to the viewer) and transmit the aggregatedcontent tags for that media content item immediately.

In other example embodiments in which a set of aggregate content tagshave been generated prior to the recording, streaming, or transmissionof the associated media content item to the media content receiver 112,the aggregated content tag transmission module 210 may integrate theaggregated content tags with their associated media content item priorto such recording, streaming, or other transmission. For example, as isdiscussed below in conjunction with FIG. 4 , the aggregated content tagtransmission module 210 may transmit the aggregated tags for the mediacontent item to one or more of the content sources 108, 110, which may,in turn, integrate the information with the media content item prior totransmission of the media content item to the one or more media contentreceivers 112 that will be presenting the media content item to aviewer. In one example, the aggregated content tags may be transmittedin a data structure that is separate from the media content item, buttransmitted along with that item. In another example embodiment, theaggregated content tags may be incorporated more intimately with themedia content item such that each aggregated tag appears in conjunctionwith its associated location within the media content item, such asduring a vertical blanking interval (VBI) between frames of a videomedia content item.

The content popularity data generation module 214 may access any or allof the content tag database 204, the aggregated content tag database208, and the known extents database 212 to generate content popularitydata, and to store the generated content popularity data in the contentpopularity database 216. In an example embodiment, the contentpopularity data generation module 214 may determine, based on the numberof content tags associated with each portion of content for whichplayback is to be modified within a media content item, a relativepopularity (or lack thereof) of each portion. This information may bemade accessible, such as for a fee, to one or more media stakeholders,such as content providers or distributors responsible for the mediacontent item or the portions therein. For example, retailers ormanufacturers responsible for a particular advertisement may benefitfrom the content popularity data, which may indicate whether thatadvertisement is being well received by viewers. In another example, amovie studio may access the content popularity data to determine whetherany particular portions of a movie are not being viewed favorably. Anexample of data stored in the content popularity database 216 isdiscussed below in conjunction with FIG. 7 .

FIG. 3 is a block diagram of one of the example media content receivers112 of FIG. 1 . In the example embodiment of FIG. 3 , the media contentreceiver 112 may include one or more of the media content recorder 116,a content tag collector 302, a content tag transmission module 304,preference data storage 306, an aggregated content tag access module308, aggregated content tag storage 310, or a content playbackcontroller 312. In other example embodiments, one or more of the modules116 and 302-312 of FIG. 2 may be omitted or combined with other modules,and one or more modules not explicitly discussed herein may be includedwithin the media content playback control system 102. In some exampleembodiments, one or more of the modules 116 and 302-312 may includehardwired modules, one or more processors, and associated memory thatincludes instructions executable by the one or more processors, or somecombination thereof.

The media content recorder 116 may be configured to record, andfacilitate playback of, media content items for subsequent viewing by aviewer. In an example embodiment, the media content recorder 116 mayinclude a nonvolatile storage medium, such as a hard disk drive, opticaldisk drive, flash memory, or the like, for storing the recorded mediacontent items. Viewer input, such as by way of a remote control devicefor the media content receiver 112, for example, may control theplayback of a media content item (e.g., initiating playback of a mediacontent item, manually fast-forwarding through portions of the mediacontent item, rewinding to review a portion of the media content itemthat was previously played, and so on). As is described more fullybelow, the content playback controller 312 may also control theoperation of the media content recorder 116 based on aggregated contenttags for the media content item that have been received at the mediacontent receiver 112.

The content tag collector 302 may be configured to receive and collectcontent tags generated in response to viewer input, such as via a remotecontrol device, during viewing of media content items. In some exampleembodiments, the input from the viewer for generating the content tagsmay be either explicit markings of locations within the media contentitem that delineate the portions of the media content item for whichplayback is to be modified, or may be more typical user interaction withthe media content receiver 112 from which the content tags are inferred.

In example embodiments in which explicit markings are employed, a viewermay press a button on a remote control device that marks the beginningof a portion of the media content item currently being viewed. Theviewer may then press a second button on the remote control device thatmarks the end of that portion of the media content item, thus indicatinga favorable or unfavorable impression by the user of the designatedportion. In some example embodiments, the first button and the secondbutton may be the same button, thus allowing the viewer to mark thebeginning and ending locations of portions by just pressing the samebutton. In those example embodiments, the media content receiver 112 maycause an indication to be displayed on the media content presentationdevice 114 to inform the viewer that the currently playing portion ofthe media content item is being marked for modified playback. Such anindication may remind the viewer that the button of the remote controldevice will need to be pressed again to designate the end of the portionthe viewer is marking. The viewer, by way of the explicit markings, maymark a portion of a media content item for skipping, muting, replay, orother modified playback on another media content receiver 112 whilerecorded or live media content is being presented. In some exampleembodiments, different buttons on a remote control device may beprovided for marking portions that are favorable or unfavorable in theeyes of the viewer.

In example embodiments in which the content tags are inferred based onviewer interaction with the media content recorder 116, the viewer mayemploy, for example, a fast-forward mode to skip over a portion of apre-recorded media content item, followed by reentering normal play modeafter the portion has been fast-forwarded through. In response to theseactions, the content tag collector 302 may interpret a first location inthe media content item at which the fast-forward operation started asthe starting location of the portion to be skipped, and may interpret asecond location at which the normal play mode was reentered as theending location of the portion. In other example embodiments, thecontent tag collector 302 may interpret a first location at which arewind operation is started as an ending location of a portion to behighlighted or promoted, and may interpret a second location at whichthe normal play mode is reentered as the starting location of thatportion.

While this inferred mode of tag generation is employable primarily withnon-live (recorded) media content items being viewed, alternatives ofthis mode may be employed for media content items that are being viewedlive. For example, in example embodiments in which a viewer may use themedia content recorder 116 to pause or replay media content that isbeing received live, the viewer may pause playing of the media contentitem at the beginning of a portion to be skipped, and then fast-forwardafter a period of time to resume live playing of the media content itemat the end of the portion being skipped. In this example, the contenttag collector 302 may interpret the location at which the media contentitem was paused as the starting location of the portion to be skipped,and may interpret the transition from fast-forward to normal play modeas the ending location of the portion. Other possibilities regardinginterpretation of trick modes initiated by the user as content tags arealso possible.

The content tag collector 302 may also be configured to requestadditional information from the viewer regarding a reason as to why aportion of a media content item was marked for modified playback. Thecontent tag collector 302, in an example embodiment, may present aquestion or other information on the media content presentation device114 to the viewer, to which the viewer may respond by way of a remotecontrol device. Such questions or other information may include arequest to provide a reason for marking the portion, a ranking of theportion, and the like. The content tag collector 302 may then store theviewer response in conjunction with the associated content tags

The content tag transmission module 304 may be configured to transmitthe content tags generated and collected by the content tag collector302 for one or more media content items over the network 106 to themedia content playback control system 102. Depending on the exampleembodiment, the content tag transmission module 304 may transmit anycollected content tags periodically (e.g., once a day, such as duringthe late night or early morning hours), after a viewing of a mediacontent item is complete, upon request from the media content playbackcontrol system 102, or at other times or intervals. The content tagtransmission module 304 may also transmit additional informationassociated with the content tags, such as responses or information fromthe viewer regarding reasons for marking, ratings of marked portions,and the like, as described above.

The preference data storage 306 may be configured to store viewerpreferences regarding which portions of a media content item are to beskipped, muted, replayed, and so on based on aggregated content tagsaccessed at the media content receiver 112. In an example embodiment,the preference data storage 306 may store particular genres or types ofportions that a viewer desires to be skipped, genres or types ofportions that a viewer desires to be muted, genres or types of portionsthat a viewer desires to be replayed, genres or types of portions duringwhich a viewer desires an alert (e.g., a visual icon) to be presented,types of portions which, when present, are to be played to the exclusionof all other portions, and the like. Such portion genres or types mayinclude, but are not limited to, advertisements, sports event timeouts,violent scenes, sports highlights, exciting action scenes, and the like.The preference data storage 306 may also store information regardingportion ratings, as may be provided with the aggregated content tagsbased on feedback provided by other viewers, indicating how low a ratingfor a portion of the media content item may be before the portion isskipped during playback at the media content receiver 112, or how high arating may be before the portion is replayed or otherwise highlighted atthe media content receiver 112. In an example embodiment, a viewer mayprovide the preference information by way of the remote control devicein response to questions displayed via the media content presentationdevice 114, by way of a smart phone or computer, or via other means.

The aggregated content tag access module 308 may be configured toreceive or otherwise access aggregated content tags for one or moremedia content items to be viewed via the media content recorder 116. Theaggregated content tag access module 308 may then store the accessedaggregated content tags in the aggregated content tag storage 310. In anexample embodiment, the aggregated content tag access module 308 mayreceive the aggregated content tags, possibly including additionalinformation related to the tags, either in conjunction with, orseparately from, the media content items containing the portions forwhich playback is to be modified using the aggregated content tags. Asindicated in the example embodiment of FIG. 4 , discussed more fullybelow, the aggregated content tag access module 308 may receive theaggregated content tags from the media content playback control system102 or a content source 108, 110 via the network 106.

The content playback controller 312 may be configured to access theaggregated content tag storage 310, as well as the preference datastorage 306, if present, and to control the playback of a media contentitem via the media content recorder 116 based on the retrieved tags andpreference data. In an example embodiment, the content playbackcontroller 312 may skip over portions of the media content item beingplayed back for the viewer that are designated by the aggregated contenttags. In an example embodiment, the content playback controller 312 maycompare additional information stored with the aggregated content tagsto viewer preference data stored in the preference data storage 306 todetermine if the skipping of the portion associated with the aggregatedcontent tags is to be performed. For example, if an aggregated contenttag indicates that a portion to be skipped is an advertisement, but thepreference data for the viewer indicates that advertisements are to beplayed, the content tags associated with the current advertisementportion are ignored, thus allowing the advertisement to be presented tothe viewer. Other information that may condition whether an aggregatedcontent tag is implemented or ignored may include, for example, portiongenre or type information (e.g., skip advertisements, but allow violentmovie scenes), rating information (e.g., skip portions that are rated ator below a five on a scale of one to ten), and so forth. In some exampleembodiments, the content playback controller 312 may compare additionalinformation stored with the aggregated content tags to viewer preferencedata stored in the preference data storage 306 to determine if muting,replaying, or other modified playback of the portion associated with theaggregated content tags is to be performed. FIG. 4 is a data flowdiagram of content tags 420 and aggregated content tags 422 transferredin the example media content system 100 of FIG. 1 . In the example ofFIG. 4 , multiple set-top boxes 402 (serving as media content receivers112), at least some of which may include personal video recorders 404,each generate content tags 420, such as those explicitly entered orimplicitly inferred via viewer actions, and transmit the tags 420 to themedia content playback control system 102. After generating aggregatedcontent tags 422 based on the received content tags 420, the mediacontent playback control system 102 may then transmit the aggregatedcontent tags 422 to a separate set-top box 402 and associated personalvideo recorder 404 for one or more media content items to modify theplayback of an associated media content item. In an example embodiment,the media content playback control system 102 may directly transmit theaggregated content tags 422 to the separate set-top box 402 in responseto a request from the set-top box 402 for that information. The requestmay be based on input from a viewer to play back the media content itemusing the corresponding personal video recorder 404.

In another example embodiment, the media content playback control system102 may transmit the aggregated content tags 422 for a particular mediacontent item to a content source 410. In response to receiving theaggregated content tags 422, the content source 410 may integrate theaggregated content tags 422 with its corresponding media content item,such as in a separate file or integrated with the media content item atlocations associated with the locations designated by the aggregatedcontent tags 422 (e.g., at the vertical blanking intervals mentionedabove). Thereafter, the content source 410 may transmit the mediacontent item (e.g., downloaded as a file, played as a stream, and soon), integrated with its aggregated content tags 422, to the separateset-top box 402 that will play back the media content item forpresentation to the viewer.

The media content playback control system 102 may also be configured totransmit content popularity data 432 (e.g., stored at the contentpopularity database 216 described above) to a media stakeholder 430,such as a producer or distributor of media content items for whichaggregated content tags 422 are generated. In another exampleembodiment, the media content playback control system 102 may transmitthe content popularity data 432 to the content source 410, which mightbe viewed as a media stakeholder 430.

FIGS. 5-7 depict example embodiments of the databases described above.Each of the databases of FIGS. 5-7 may be implemented by a relationaldatabase management system (RDBMS), although other types of databases,as well as more generalized data structures not strictly implemented asdatabases, may be utilized in other embodiments.

FIG. 5 is graphical depiction of an example of the content tag database204 of the media content playback control system 102 of FIG. 2 . In thisexample embodiment, the content tag database 204 may include multipleentries, with each entry representing a content tag 420 received from amedia content receiver 112. In the example of FIG. 5 , a content tagentry may include a device identifier 502, a program/channel identifier504, a tag indication 506, and a location/timestamp 508. The deviceidentifier 502 may be a value indicating the identity of the mediacontent receiver 112 providing the content tag 420. The program/channelidentifier 504 may provide a program name, broadcast channel number,source uniform resource locator (URL), broadcast time, and/or any otheridentifying information that may be used to identify the media contentitem containing the portion designated by the content tag 420. The tagindication 506 may provide some indication of whether the content tag420 corresponds to a starting location or an ending location of theportion, an indication of the type of modification to be applied to theportion (e.g., skipped, muted, replayed, highlighted, and so on), anindication as to whether the portion is viewed in a positive or negativelight by other viewers, and so forth. This indication may be explicit(e.g., an explicit starting or ending location mark by the viewer), ormay refer instead to a particular viewer input from which the startingor ending location may be inferred (e.g., a location at which afast-forward, pause, or resume playback command was received from theviewer). The location/timestamp 508 may be a time offset or otherlocation of the content tag 420 within the media content item containingthe portion. In some example embodiments, a single content tag 420 mayinclude two tag indications 506 and/or two location/timestamps 508 thatmay designate both the starting and ending locations of a portion forwhich playback is to be modified.

In some example embodiments, one or more entries of the content tagdatabase 204 may include other information provided by the viewer, suchas a personal rating of the portion corresponding to the tag, aperceived genre or type of the portion, and the like, as describedabove.

FIG. 6 is graphical depiction of an example of the aggregated contenttag database 208 of the media content playback control system 102 ofFIG. 2 . In this example embodiment, the aggregated content tag database208 may include multiple entries, with each entry representing anaggregated content tag 422 generated by the content tag aggregationmodule 206 for a particular media content item. In the example of FIG. 6, an aggregated content tag entry may include a program/channelidentifier 602, a starting location/timestamp 604, an endinglocation/timestamp 606, playback control 608, and genre/ratinginformation 610. As with the content tag database 204, theprogram/channel identifier 602 may provide a program name, broadcastchannel number, source URL, broadcast time, and/or any other identifyinginformation that may be used to identify the media content itemcontaining the portion designated by the aggregated content tag 422. Thestarting location/timestamp 604 may be a time offset or other indicationof the starting location for the portion to be skipped within the mediacontent item, while the ending location/timestamp 606 may be a timeoffset or other indication of the ending location for the portion forwhich playback is to be modified. In other example embodiments, thestarting location/timestamp 604 and the ending location/timestamp 606may be presented in separate entries of the aggregated content tagdatabase 208. The playback control 608 may be an indication of the typeof playback modification to be performed on the designated portion(e.g., skipped, muted, replayed, highlighted with an alert, and so on).In other example embodiments, the playback control 608 may be a moregeneral positive or negative indicator regarding the merit of theportion, as indicated by other viewers.

In some example embodiments, one or more entries of the aggregatedcontent tag database 208 may include other information, such asgenre/rating information 610, which may be provided by the viewers inconjunction with the content tags 420 received via the content tagaccess module 202, or from information stored in the known extentsdatabase 212. Examples of the genre/rating information 610 may include,but is not limited to, an aggregate rating of the corresponding portion,a genre or type of the portion, and so on.

FIG. 7 is a graphical depiction of an example of the content popularitydatabase 216 of the media content playback control system 102 of FIG. 2. In this example embodiment, the content popularity database 216 mayinclude multiple entries, with each entry representing contentpopularity data for a particular portion of a media content item. In theexample of FIG. 7 , a content popularity entry may include aprogram/channel identifier 702, a content portion identifier 704, acontent portion location/timestamp 706, and rating information 708. Theprogram/channel identifier 702 may provide a program name, broadcastchannel number, source URL, broadcast time, and/or any other identifyinginformation that may be used to identify the media content itemassociated with the content popularity data 432 of the portioncorresponding to this entry. The content portion identifier 704 mayprovide a name or other identifier (e.g., advertisement name) of theparticular portion of the media content item. The content portionlocation/timestamp 706 may be a time offset or other indication of thestarting location (or some other location therein) for the portion ofthe media content item. The rating information 708 may be informationthat is in a numerical format or in some other format that indicates therelative or absolute popularity of the portion, as indicated by theviewers that provided the content tags 420 received at the media contentplayback control system 102. Other information may be included in theentries of the content popularity database 212 in other exampleembodiments.

FIGS. 8-11 provide methods of operating various devices or systems ofthe media content system 100 of FIG. 1 . However, other devices orsystems not specifically disclosed herein may also perform these methodsand variations thereof. Also, while the operations of the methods ofFIGS. 8-11 are presented in a particular order, other orders ofexecution are also possible, including simultaneous, concurrent, oroverlapping execution of two or more operations.

FIG. 8 is a flow diagram of an example method 800 for providing contenttags 420 at a media content receiver, such as the media content receiver112 of FIGS. 1 and 3 . In the method 800, viewer inputs are receivedduring the playing of a media content item (operation 802). The viewerinputs may be interpreted as explicit or implicit markings of thestarting and ending locations of portions of the media content item, asdescribed above. In response to the viewer inputs, correspondinglocations within the media content item are recorded as content tags 420to identify the portions of the media content item (operation 804). Thecontent tags 420 may then be transmitted to the media content playbackcontrol system 102 (operation 806), which may then aggregate the contenttags 420 from multiple such media content receivers 112 and distributethe aggregated content tags 422 to allow other viewers to automaticallymodify the playback of portions of the same media content item, asdiscussed above.

FIG. 9 is a flow diagram of an example method 900 for employingaggregated content tags 422 at the media content receiver 112. In themethod 900, the media content receiver 112 may receive, and possiblystore, aggregated content tags 422 for a media content item to be playedat the media content receiver 112 (operation 902), such as by way of amedia content recorder 114 associated therewith. In some exampleembodiments discussed above, the aggregated content tags 422 may bereceived separately from their corresponding media content item (e.g.,from the media content playback control system 102), or integrated withthe media content item (e.g., from the content source 108, 110, 410).The media content receiver 112 may then automatically control playing ofthe media content item for presentation to the viewer based on thereceived aggregated content tags 422 (operation 904), such as byskipping, muting, replaying, or otherwise modifying the playback ofportions of the media content item based on the tags. In some exampleembodiments, the control of the playing of the media content item mayalso be based on additional information (e.g., rating information, genreinformation, and so on) associated with the aggregated content tags 422,as well as on preference information associated with the viewer, asexplained above.

FIG. 10 is a flow diagram of an example method 1000 for generating anddistributing aggregated content tags 422 based on received content tags420 at the media content playback control system 102. In the method1000, the media content playback control system 102 may receive contenttags 420 from multiple media content receivers 112 and store the tags(operation 1002). The content tags 420 may be organized to relate eachtag to its corresponding media content item (operation 1004), such as byway of channel/program identifiers and associated timestamps orlocations noted in the content tags 420. The content tags 420 may beprocessed to generate one or more aggregated content tags 422 (operation1006). The aggregated content tags 422 may be enhanced to includeadditional information (operation 1008), such as rating information fromthe media content receivers 112. The aggregated content tags 422 may bestored locally (operation 1010) and transmitted to one or more mediacontent receivers 112 (operation 1012), at which the aggregated contenttags 422 may be employed to skip, mute, replay, highlight, or otherwisemodify the playback of the one or more portions of the media contentitems corresponding to the tags.

FIG. 11 is a flow diagram of an example method 1100 for generating anddistributing content popularity data 432 based on received content tags420 at a media content playback control system 102. In the method 1100,the media content playback control system 102 may receive the contenttags 420 from the multiple media content receivers 112 and store thetags (operation 1102). The content tags 420 may be organized to relateeach tag to its corresponding media content item (operation 1104) andprocessed to generate content popularity data 432 for each media contentitem (operation 1106). In some example embodiments, the generatedcontent popularity data 432 may be based on the number of content tags420 received for each portion of a media content item. The contentpopularity data 432 may be stored (operation 1108) and subsequentlytransmitted to one or more media stakeholders 430, such as media contentcreators, providers, distributors, and the like.

FIG. 12 is a block diagram illustrating components of a machine 1200,according to some example embodiments, able to read instructions 1224from a machine-readable medium 1222 (e.g., a non-transitorymachine-readable medium, a machine-readable storage medium, or acomputer-readable storage medium) and perform any one or more of themethodologies discussed herein, in whole or in part. Specifically, FIG.12 depicts the machine 1200 in the example form of a computer device(e.g., a computer) within which the instructions 1224 (e.g., software,firmware, a program, an application, an applet, an app, or otherexecutable code) for causing the machine 1200 to perform any one or moreof the methodologies discussed herein, in whole or in part.

For example, the instructions 1224 may cause the machine 1200 to executethe flow diagrams of FIGS. 8 through 11 . The instructions 1224 cantransform the general, non-programmed machine 1200 into a particularmachine (e.g., specially configured machine) programmed to carry out thedescribed and illustrated functions in the manner described. Also inexample embodiments, the machine 1200 may operate as one or more of themedia content receiver 112 of FIGS. 1 and 3 , the media content playbackcontrol system 102 of FIGS. 1 and 2 , or any other computing system ordevice described herein.

In example embodiments, the machine 1200 operates as a standalone deviceor may be connected (e.g., networked) to other machines. The machine1200 may be a server computer, a client computer, a personal computer(PC), a tablet computer, a laptop computer, a netbook, a set-top box(e.g. STB), a personal digital assistant (PDA), a cellular telephone, asmartphone, a web appliance, a network router, a network switch, anetwork bridge, a power adapter, or any machine 1200 capable ofexecuting the instructions 1224, sequentially or otherwise, that specifyactions to be taken by that machine 1200. Further, while only a singlemachine 1200 is illustrated, the term “machine” shall also be taken toinclude a collection of machines that individually or jointly executethe instructions 1224 to perform any one or more of the methodologiesdiscussed herein.

The machine 1200 includes a processor 1202 (e.g., a central processingunit (CPU), a graphics processing unit (GPU), a digital signal processor(DSP), an application-specific integrated circuit (ASIC), aradio-frequency integrated circuit (RFIC), or any suitable combinationthereof), a main memory 1204, and a static memory 1206, which areconfigured to communicate with each other via a bus 1208. The processor1202 may contain microcircuits that are configurable, temporarily orpermanently, by some or all of the instructions 1224 such that theprocessor 1202 is configurable to perform any one or more of themethodologies described herein, in whole or in part. For example, a setof one or more microcircuits of the processor 1202 may be configurableto execute one or more modules (e.g., software modules) describedherein.

The machine 1200 may further include a graphics display 1210 (e.g., aplasma display panel (PDP), a light-emitting diode (LED) display, aliquid crystal display (LCD), a projector, a cathode ray tube (CRT), orany other display capable of displaying graphics or video). The machine1200 may also include an alphanumeric input device 1212 (e.g., akeyboard or keypad), a cursor control device 1214 (e.g., a mouse, atouchpad, a trackball, a joystick, a motion sensor, an eye trackingdevice, or other pointing instrument), a storage unit 1216, a signalgeneration device 1218 (e.g., a sound card, an amplifier, a speaker, aheadphone jack, or any suitable combination thereof), and a networkinterface device 1220.

The storage unit 1216 includes the machine-readable medium 1222 (e.g., atangible machine-readable storage medium) on which is stored theinstructions 1224 embodying any one or more of the methodologies orfunctions described herein. The instructions 1224 may also reside,completely or at least partially, within the main memory 1204, withinthe processor 1202 (e.g., within a cache memory of the processor 1202),or both, before or during execution thereof by the machine 1200.Accordingly, the main memory 1204 and the processor 1202 may beconsidered machine-readable media 1222 (e.g., tangible andnon-transitory machine-readable media).

In some example embodiments, the machine 1200 may be a portable ormobile computing device and have one or more additional input components(e.g., sensors or gauges). Examples of such input components include animage input component (e.g., one or more cameras), an audio inputcomponent (e.g., a microphone), a direction input component (e.g., acompass), a location input component (e.g., a global positioning system(GPS) receiver), an orientation component (e.g., a gyroscope), a motiondetection component (e.g., one or more accelerometers), an altitudedetection component (e.g., an altimeter), and a gas detection component(e.g., a gas sensor). Inputs harvested by any one or more of these inputcomponents may be accessible and available for use by any of the modulesdescribed herein.

As used herein, the term “memory” refers to a machine-readable medium1222 able to store data temporarily or permanently and may be taken toinclude, but not be limited to, random-access memory (RAM), read-onlymemory (ROM), buffer memory, flash memory, and cache memory. While themachine-readable medium 1222 is shown in an example embodiment to be asingle medium, the term “machine-readable medium” should be taken toinclude a single medium or multiple media (e.g., a centralized ordistributed database, or associated caches and servers) able to storeinstructions 1224. The term “machine-readable medium” shall also betaken to include any medium, or combination of multiple media, that iscapable of storing instructions 1224 for execution by a machine (e.g.,machine 1200), such that the instructions 1224, when executed by one ormore processors of the machine 1200 (e.g., processor 1202), cause themachine 1200 to perform any one or more of the methodologies describedherein. The term “machine-readable medium” shall accordingly be taken toinclude, but not be limited to, one or more data repositories in theform of a solid-state memory, an optical medium, a magnetic medium, orany suitable combination thereof.

Furthermore, the machine-readable medium 1222 is non-transitory in thatit does not embody a propagating or transitory signal. However, labelingthe machine-readable medium 1222 as “non-transitory” should not beconstrued to mean that the medium is incapable of movement; the mediumshould be considered as being transportable from one physical locationto another in some example embodiments. Additionally, since themachine-readable medium 1222 is tangible, the medium may be considered amachine-readable device.

The instructions 1224 may further be transmitted or received over acommunications network 1226 using a transmission medium via the networkinterface device 1220 and utilizing any one of a number of well-knowntransfer protocols (e.g., Hypertext Transfer Protocol (HTTP)). Examplesof communication networks 1226 include a local area network (LAN), awide area network (WAN), the Internet, mobile telephone networks, plainold telephone service (POTS) networks, and wireless data networks (e.g.,Wi-Fi®, LTE®, and WiMAX™ networks). The term “transmission medium” shallbe taken to include any intangible medium that is capable of storing,encoding, or carrying instructions 1224 for execution by the machine1200, and includes digital or analog communications signals or otherintangible medium to facilitate communication of such software.

In an example embodiment, a method comprises receiving, from a pluralityof media content devices over a communication network, a plurality ofcontent tags, each of the plurality of content tags designating alocation within a media content item; processing, using one or morehardware processors, the content tags to generate aggregated contenttags for the media content item, the aggregated content tags designatingone or more portions of the media content item for modified playback;and transmitting, over the communication network to a first mediacontent device separate from the plurality of media content devices, theaggregated content tags for the media content item.

In another example embodiment, including all previous exampleembodiments, each of the plurality of content tags further comprises anindication as to whether the location within the media content itemcomprises a starting location or an ending location of a portion of themedia content item to be skipped during playback of the media contentitem.

In another example embodiment, including all previous exampleembodiments, the processing of the content tags comprises identifying afirst group of the plurality of content tags as designating a startinglocation of a first portion of the media content item for modifiedplayback; aggregating the first group of the plurality of content tagsto a first aggregated content tag designating the starting location ofthe first portion of the media content item for modified playback;identifying a second group of the plurality of content tags asdesignating an ending location of the first portion of the media contentitem for modified playback; and aggregating the second group of theplurality of content tags to a second aggregated content tag designatingthe ending location of the first portion of the media content item formodified playback.

In another example embodiment, including all previous exampleembodiments, the identifying of the first group of the plurality ofcontent tags and the identifying of the second group of the plurality oftags are based on a proximity of the designated location of each of theplurality of content tags to the designated locations of others of theplurality of content tags.

In another example embodiment, including all previous exampleembodiments, the aggregating of the first group of the plurality ofcontent tags to the first aggregated content tag comprises calculating afirst average of the designated locations of the first group of theplurality of content tags, the starting location of the first portion ofthe media content item comprising the first average; and the aggregatingof the second group of the plurality of content tags to the secondaggregated content tag comprises calculating a second average of thedesignated locations of the second group of the plurality of contenttags, the ending location of the first portion of the media content itemcomprising the second average.

In another example embodiment, including all previous exampleembodiments, the calculating of the first average comprises calculatingone of a mean, median, or mode of the designated locations of the firstgroup of the plurality of content tags; and the calculating of thesecond average comprises calculating one of a mean, median, or mode ofthe designated locations of the second group of the plurality of contenttags.

In another example embodiment, including all previous exampleembodiments, the method further comprises accessing a plurality of knownsegment extents of the media content item, each of the plurality ofknown segment extents comprising a starting location and an endinglocation within the media content item; wherein the identifying of thefirst group of the plurality of content tags and the identifying of thesecond group of the plurality of content tags comprises comparing theplurality of content tags to the starting location and the endinglocation of at least some of the plurality of known extents of the mediacontent item; wherein the aggregating of the first group of theplurality of content tags to the first aggregated content tag comprisessetting the first aggregated content tag to designate the startinglocation of one of the plurality of known extents as the startinglocation of the first portion of the media content item; and wherein theaggregating of the second group of the plurality of content tags to thesecond aggregated content tag comprises setting the second aggregatedcontent tag to designate the ending location of the one of the pluralityof known extents as the ending location of the first portion of themedia content item.

In another example embodiment, including all previous exampleembodiments, the method further comprises comparing a number of contenttags in the first group of the plurality of content tags to a firstthreshold value, the aggregating of the first group of the plurality ofcontent tags to the first aggregated content tag based on the number ofcontent tags in the first group exceeding the first threshold value; andcomparing a number of content tags in the second group of the pluralityof content tags to a second threshold value, the aggregating of thesecond group of the plurality of content tags to the second aggregatedcontent tag based on the number of content tags in the second groupexceeding the second threshold value.

In another example embodiment, including all previous exampleembodiments, the aggregating of the first group of the plurality ofcontent tags to a first aggregated content tag comprises setting thefirst aggregated content tag to designate the location of an earliestcontent tag of the first group as the starting location of the firstportion of the media content item; and the aggregating of the secondgroup of the plurality of content tags to a second aggregated contenttag comprises setting the second aggregated content tag to designate thelocation of a latest content tag of the second group as the endinglocation of the first portion of the media content item.

In another example embodiment, including all previous exampleembodiments, the transmitting of the aggregated content tags occurs at ascheduled point in time.

In another example embodiment, including all previous exampleembodiments, the transmitting of the aggregated content tags occurs inresponse to a request from the first media content device to receive themedia content item.

In another example embodiment, including all previous exampleembodiments, the transmitting of the aggregated content tags comprisestransmitting the aggregated content tags within the media content itemto the first media content device.

In another example embodiment, including all previous exampleembodiments, the method further comprises processing at least one of thecontent tags and the aggregated content tags to generate popularity dataregarding the one or more portions of the media content item; andtransmitting, over the communication network to a source of the mediacontent item, the popularity data.

In another example embodiment, including all previous exampleembodiments, the method further comprises generating rating data for theone or more portions of the media content item designated for modified,the rating data based on the plurality of content tags; andtransmitting, over the communication network to the first media contentdevice, the rating information.

In another example embodiment, including all previous exampleembodiments, the method further comprises accessing a plurality of knownsegment extents of the media content item, each of the plurality ofknown segment extents comprising a starting location and an endinglocation within the media content item; accessing genre information forthe plurality of known extents of the media content item; correlatingthe one or more portions of the media content item designated formodified playback with the genre information; and transmitting, over thecommunication network to the first media content device, the genreinformation corresponding to the aggregated content tags for the mediacontent item.

In another example embodiment, including all previous exampleembodiments, the transmitting of the aggregated content tags cause thefirst media content device, after receiving the transmitted aggregatedcontent tags, to skip the one or more portions of the media content itemwhen the first media content device plays the media content item.

In another example embodiment, including all previous exampleembodiments, the transmitting of the aggregated content tags cause thefirst media content device, after receiving the transmitted aggregatedcontent tags, to mute the one or more portions of the media content itemwhen the first media content device plays the media content item.

In another example embodiment, including all previous exampleembodiments, the transmitting of the aggregated content tags cause thefirst media content device, after receiving the transmitted aggregatedcontent tags, to replay the one or more portions of the media contentitem when the first media content device plays the media content item.

In another example embodiment, including all previous exampleembodiments, the transmitting of the aggregated content tags cause thefirst media content device, after receiving the transmitted aggregatedcontent tags, to present an alert during the one or more portions of themedia content item when the first media content device plays the mediacontent item.

In an example embodiment, a method comprises presenting, at a mediacontent device, a first media content item for viewing; receiving, atthe media content device, multiple inputs from a viewer during thepresenting of the first media content item; recording, using one or morehardware processors, a location within the first media content item foreach of the multiple inputs; and transmitting, from the media contentdevice over a communication network to a computing system, a pluralityof content tags, each of the plurality of content tags designating thelocation within the first media content item for one of the multipleinputs.

In another example embodiment, including all previous exampleembodiments, the multiple inputs comprise tagging input provided by theviewer while the first media content item is played live to the viewer.

In another example embodiment, including all previous exampleembodiments, the multiple inputs comprise playback trick mode inputsprovided by the viewer while the first media content item is played backto the viewer.

In another example embodiment, including all previous exampleembodiments, the method further comprises receiving, from the computingsystem via the communication network at the media content device, asecond plurality of content tags designating one or more portions of asecond media content item for modified playback; and controllingplayback, at the media content device, of the second media content itembased on the second plurality of content tags.

In another example embodiment, including all previous exampleembodiments, receiving, from the computing system via the communicationnetwork at the media content device, at least one of rating informationand genre information corresponding to the one or more portions of thesecond media content item designated for modified playback by the secondplurality of content tags; and accessing viewer preferencescorresponding to at least one of ratings and genres of media content;wherein the controlling of the playback of the second media content itemis further based on the viewer preferences and the at least one of therating information and the genre information.

In another example embodiment, including all previous exampleembodiments, the media content device comprises a first media contentdevice, the transmitting of the plurality of content tags to causeaggregation of the plurality of content tags with content tags fromother media content devices to yield aggregated content tags, and tocause a second media content device separate from the first mediacontent device and the other media content devices to skip portions ofthe first media content item designated by the aggregated content tags.

In another example embodiment, including all previous exampleembodiments, the media content device comprises a first media contentdevice, the transmitting of the plurality of content tags to causeaggregation of the plurality of content tags with content tags fromother media content devices to yield aggregated content tags, and tocause a second media content device separate from the first mediacontent device and the other media content devices to mute portions ofthe first media content item designated by the aggregated content tags.

In another example embodiment, including all previous exampleembodiments, the media content device comprises a first media contentdevice, the transmitting of the plurality of content tags to causeaggregation of the plurality of content tags with content tags fromother media content devices to yield aggregated content tags, and tocause a second media content device separate from the first mediacontent device and the other media content devices to replay portions ofthe first media content item designated by the aggregated content tags.

In another example embodiment, including all previous exampleembodiments, the media content device comprises a first media contentdevice, the transmitting of the plurality of content tags to causeaggregation of the plurality of content tags with content tags fromother media content devices to yield aggregated content tags, and tocause a second media content device separate from the first mediacontent device and the other media content devices to present an alertduring portions of the first media content item designated by theaggregated content tags.

In an example embodiment, a media system comprises one or more hardwareprocessors; and memory including instructions that, when executed by theone or more hardware processors, cause the media system to performoperations comprising receiving, from a plurality of media contentdevices over a communication network, a plurality of content tags, eachof the plurality of content tags designating a location within a mediacontent item; processing the content tags to generate aggregated contenttags for the media content item, the aggregated content tags designatingone or more portions of the media content item for modified playback;and transmitting, over the communication network to a first mediacontent device separate from the plurality of media content devices, theaggregated content tags for the media content item.

In an example embodiment, a media content device comprises one or morehardware processors; and memory including instructions that, whenexecuted by the one or more hardware processors, cause the media systemto perform operations comprising presenting a first media content itemfor viewing; receiving multiple inputs from a viewer during thepresenting of the first media content item; recording a location withinthe first media content item for each of the multiple inputs; andtransmitting, over a communication network to a computing system, aplurality of content tags, each of the plurality of content tagsdesignating the location within the first media content item for one ofthe multiple inputs.

In an example embodiment, including all previous example embodiments,the media content device comprises one of a set-top box, a mobilecommunication device, a desktop computer, a tablet computer, a streamingdevice, a smart television, and a gaming system.

Throughout this specification, plural instances may implementcomponents, operations, or structures described as a single instance.Although individual operations of one or more methods are illustratedand described as separate operations, one or more of the individualoperations may be performed concurrently, and nothing requires that theoperations be performed in the order illustrated. Structures andfunctionality presented as separate components in example configurationsmay be implemented as a combined structure or component. Similarly,structures and functionality presented as a single component may beimplemented as separate components. These and other variations,modifications, additions, and improvements fall within the scope of thesubject matter herein.

Certain embodiments are described herein as including logic or a numberof components, modules, or mechanisms. Modules may constitute eithersoftware modules (e.g., code embodied on a machine-readable medium 1222or in a transmission signal) or hardware modules. A “hardware module” isa tangible unit capable of performing certain operations and may beconfigured or arranged in a certain physical manner. In various exampleembodiments, one or more computer systems (e.g., a standalone computersystem, a client computer system, or a server computer system) or one ormore hardware modules of a computer system (e.g., a processor 1202 or agroup of processors 1202) may be configured by software (e.g., anapplication or application portion) as a hardware module that operatesto perform certain operations as described herein.

In some embodiments, a hardware module may be implemented mechanically,electronically, or any suitable combination thereof. For example, ahardware module may include dedicated circuitry or logic that ispermanently configured to perform certain operations. For example, ahardware module may be a special-purpose processor, such as afield-programmable gate array (FPGA) or an ASIC. A hardware module mayalso include programmable logic or circuitry that is temporarilyconfigured by software to perform certain operations. For example, ahardware module may include software encompassed within ageneral-purpose processor or other programmable processor. It will beappreciated that the decision to implement a hardware modulemechanically, in dedicated and permanently configured circuitry, or intemporarily configured circuitry (e.g., configured by software) may bedriven by cost and time considerations.

Accordingly, the phrase “hardware module” should be understood toencompass a tangible entity, be that an entity that is physicallyconstructed, permanently configured (e.g., hardwired), or temporarilyconfigured (e.g., programmed) to operate in a certain manner or toperform certain operations described herein. As used herein,“hardware-implemented module” refers to a hardware module. Consideringexample embodiments in which hardware modules are temporarily configured(e.g., programmed), each of the hardware modules need not be configuredor instantiated at any one instance in time. For example, where ahardware module comprises a general-purpose processor configured bysoftware to become a special-purpose processor, the general-purposeprocessor may be configured as respectively different special-purposeprocessors (e.g., comprising different hardware modules) at differenttimes. Software may accordingly configure a processor, for example, toconstitute a particular hardware module at one instance of time and toconstitute a different hardware module at a different instance of time.

The various operations of example methods described herein may beperformed, at least partially, by one or more processors that aretemporarily configured (e.g., by software) or permanently configured toperform the relevant operations. Whether temporarily or permanentlyconfigured, such processors may constitute processor-implemented modulesthat operate to perform one or more operations or functions describedherein. As used herein, “processor-implemented module” refers to ahardware module implemented using one or more processors.

Similarly, the methods described herein may be at least partiallyprocessor-implemented, a processor being an example of hardware. Forexample, at least some of the operations of a method may be performed byone or more processors or processor-implemented modules.

Some portions of the subject matter discussed herein may be presented interms of algorithms or symbolic representations of operations on datastored as bits or binary digital signals within a machine memory (e.g.,a computer memory). Such algorithms or symbolic representations areexamples of techniques used by those of ordinary skill in the dataprocessing arts to convey the substance of their work to others skilledin the art. As used herein, an “algorithm” is a self-consistent sequenceof operations or similar processing leading to a desired result. In thiscontext, algorithms and operations involve physical manipulation ofphysical quantities. Typically, but not necessarily, such quantities maytake the form of electrical, magnetic, or optical signals capable ofbeing stored, accessed, transferred, combined, compared, or otherwisemanipulated by a machine. It is convenient at times, principally forreasons of common usage, to refer to such signals using words such as“data,” “content,” “bits,” “values,” “elements,” “symbols,”“characters,” “terms,” “numbers,” “numerals,” or the like. These words,however, are merely convenient labels and are to be associated withappropriate physical quantities.

Unless specifically stated otherwise, discussions herein using wordssuch as “processing,” “computing,” “calculating,” “determining,”“presenting,” “displaying,” or the like may refer to actions orprocesses of a machine (e.g., a computer) that manipulates or transformsdata represented as physical (e.g., electronic, magnetic, or optical)quantities within one or more memories (e.g., volatile memory,non-volatile memory, or any suitable combination thereof), registers, orother machine components that receive, store, transmit, or displayinformation. Furthermore, unless specifically stated otherwise, theterms “a” or “an” are herein used, as is common in patent documents, toinclude one or more than one instance. Finally, as used herein, theconjunction “or” refers to a non-exclusive “or,” unless specificallystated otherwise.

Although an overview of the inventive subject matter has been describedwith reference to specific example embodiments, various modificationsand changes may be made to these example embodiments without departingfrom the broader scope of embodiments of the present disclosure. Forexample, various embodiments or features thereof may be mixed andmatched or made optional by a person of ordinary skill in the art. Suchembodiments of the inventive subject matter may be referred to herein,individually or collectively, by the term “invention” merely forconvenience and without intending to voluntarily limit the scope of thisapplication to any single inventive concept if more than one is, infact, disclosed.

The example embodiments illustrated herein are described in sufficientdetail to enable those skilled in the art to practice the teachingsdisclosed. Other embodiments may be used and derived therefrom, suchthat structural and logical substitutions and changes may be madewithout departing from the scope of this disclosure. The DetailedDescription, therefore, is not to be taken in a limiting sense, and thescope of various embodiments is defined only by the appended claims,along with the full range of equivalents to which such claims areentitled.

Moreover, plural instances may be provided for resources, operations, orstructures described herein as a single instance. Additionally,boundaries between various resources, operations, modules, engines, anddata stores are somewhat arbitrary, and particular operations areillustrated in a context of specific illustrative configurations. Otherallocations of functionality are envisioned and may fall within a scopeof various embodiments of the present disclosure. In general, structuresand functionality presented as separate resources in the exampleconfigurations may be implemented as a combined structure or resource.Similarly, structures and functionality presented as a single resourcemay be implemented as separate resources. These and other variations,modifications, additions, and improvements fall within a scope ofembodiments of the present disclosure as represented by the appendedclaims. The specification and drawings are, accordingly, to be regardedin an illustrative rather than a restrictive sense.

What is claimed is:
 1. A method comprising: accessing a plurality ofcontent tags received from a plurality of media content receivers, oneor more of the plurality of content tags identifying a media contentitem, one or more of the plurality of content tags providing anindication of popularity including a user-indicated rating for a portionof the media content item, and one or more of the plurality of contenttags providing an indication that at least one user viewed the mediacontent item from a starting location to an ending location; generating,by one or more hardware processors, content popularity data for themedia content item by processing at least the indication of popularityand the indication that the at least one user viewed the media contentitem from the starting location to the ending location, the contentpopularity data including an aggregated rating that is generated byaggregating the user-indicated rating for the portion, the aggregatedrating being associated with a playback control indicating a type ofplayback modification to be performed, playback of the media contentitem being automatically modified based on a comparison of the contentpopularity data including the aggregated rating to user preference datathat indicates a plurality of rating thresholds for different types ofplayback modifications; storing the content popularity data in a contentpopularity database; and transmitting the media content item and thecontent popularity data to a further media content receiver, the furthermedia content receiver configured to automatically perform the playbackmodification based on the comparison.
 2. The method of claim 1, whereinthe generating the content popularity data comprises determining apopularity of the media content item based on a number of content tagsassociated with the media content item.
 3. The method of claim 1,further comprising: accessing the stored content popularity data fromthe content popularity database; and transmitting the content popularitydata to one or more media stakeholders.
 4. The method of claim 1,wherein the content popularity data comprises rating informationindicating a relative or absolute popularity of the media content item.5. The method of claim 4, wherein the rating information comprises anumerical format based on viewer ratings.
 6. The method of claim 1,wherein: at least one of the plurality of content tags indicates astarting and ending location of one or more identified portions of themedia content item to be skipped; and the content popularity dataindicates a lack of popularity for the one or more identified portionsof the media content item.
 7. The method of claim 1, wherein: theindication of popularity comprises rating information indicating aviewer rating of the media content item; and the content popularity datais based on the viewer rating.
 8. The method of claim 1, wherein theaccessing the plurality of content tags comprises: pulling storedcontent tags from each of a plurality of media content receivers; andstoring the content tags in a content tag database.
 9. The method ofclaim 1, wherein the user preference data indicates how low the contentpopularity data for a portion of the media content item is before theportion is skipped during playback or how high the content popularitydata for a portion of the media content item is before the portion isreplayed or highlighted.
 10. The method of claim 1, wherein the playbackmodification is selected from the group consisting of skipping theportion, muting the portion, replaying the portion, presenting an alertwhile playing the portion, and only playing the portion.
 11. A systemcomprising: one or more hardware processors; and a storage devicestoring instructions that, when executed by the one or more hardwareprocessors, cause the one or more hardware processors to performoperations comprising: accessing a plurality of content tags receivedfrom a plurality of media content receivers, one or more of theplurality of content tags identifying a media content item, one or moreof the plurality of content tags providing an indication of popularityincluding a user-indicated rating for a portion of the media contentitem, and one or more of the plurality of content tags providing anindication that at least one user viewed the media content item from astarting location to an ending location; generating content popularitydata for the media content item by processing at least the indication ofpopularity and the indication that the at least one user viewed themedia content item from the starting location to the ending location,the content popularity data including an aggregated rating that isgenerated by aggregating the user-indicated rating for the portion, theaggregated rating being associated with a playback control indicating atype of playback modification to be performed, playback of the mediacontent item being automatically modified based on a comparison of thecontent popularity data including the aggregated rating to userpreference data that includes a plurality of rating thresholds fordifferent types of playback modifications; storing the contentpopularity data in a content popularity database; and transmitting themedia content item and the content popularity data to a further mediacontent receiver, the further media content receiver configured toautomatically perform the playback modification based on the comparison.12. The system of claim 11, wherein the generating the contentpopularity data comprises determining a popularity of the media contentitem based on a number of content tags associated with the media contentitem.
 13. The system of claim 11, wherein the operations furthercomprise: accessing the stored content popularity data from the contentpopularity database; and transmitting the content popularity data to oneor more media stakeholders.
 14. The system of claim 11, wherein: atleast one of the plurality of content tags indicates a starting andending location of one or more identified portions of the media contentitem to be skipped; and the content popularity data indicates a lack ofpopularity for the one or more identified portions of the media contentitem.
 15. The system of claim 11, wherein: the indication of popularitycomprises rating information indicating viewer rating of the mediacontent item; and the content popularity data is based on the viewerrating.
 16. A non-transitory machine storage medium storing instructionsthat when executed by one or more hardware processors of a machine,cause the machine to perform operations comprising: accessing aplurality of content tags received from a plurality of media contentreceivers, one or more of the plurality of content tags identifying amedia content item, one or more of the plurality of content tagsproviding an indication of popularity including a user-indicated ratingfor a portion of the media content item, and one or more of theplurality of content tags providing an indication that at least one userviewed the media content item from a starting location to an endinglocation; generating content popularity data for the media content itemby processing the indication of popularity and the indication that theat least one user viewed the media content item from the startinglocation to the ending location, the content popularity data includingan aggregated rating that is generated by aggregating the user-indicatedrating for the portion, the aggregated rating being associated with aplayback control indicating a type of playback modification to beperformed, playback of the media content item being automaticallymodified based on a comparison of the content popularity data includingthe aggregated rating to user preference data that includes a pluralityof rating thresholds for different types of playback modifications;storing the content popularity data in a content popularity database;and transmitting the media content item and the content popularity datato a further media content receiver, the further media content receiverconfigured to automatically perform the playback modification based onthe comparison.
 17. The non-transitory machine storage medium of claim16, wherein the generating the content popularity data comprisesdetermining a popularity of the media content item based on a number ofcontent tags associated with the media content item.
 18. Thenon-transitory machine storage medium of claim 16, wherein theoperations further comprise: accessing the stored content popularitydata from the content popularity database; and transmitting the contentpopularity data to one or more media stakeholders.
 19. Thenon-transitory machine storage medium of claim 16, wherein: at least oneof the plurality of content tags indicates a starting and endinglocation of one or more identified portions of the media content item tobe skipped; and the content popularity data indicates a lack ofpopularity for the one or more identified portions of the media contentitem.
 20. The non-transitory machine storage medium of claim 16,wherein: the indication of popularity comprises rating informationindicating a viewer rating of the media content item; and the contentpopularity data is based on the viewer rating.